(1) Field of the Invention
The present invention generally relates to a display unit having a plurality of frame buffers, and more particularly to a display unit in which a plurality of windows overlapping each other are displayed using a plurality of frame buffers.
(2) Description of the Related Art
In recent years, it is required, in the field of computer graphics, to easily and rapidly process image data. In addition, a display unit having a multi-window function has been proposed, in which function a plurality of windows are opened on a single screen, sentences, tables and graphics being displayed on the respective windows. In the display unit having the multi-window function, a transfer process for transferring a part of an image displayed on a screen is often performed, and it is desired to increase the speed of the transfer process.
Conventionally, a display unit having two frame buffers has been proposed. This display unit is referred to as a double buffering display unit. The two frame buffers in the double buffering display unit are respectively referred to, for example, as a plane A and a plane B. Normally, the plane A and the plane B in the double buffering display unit are used as follows. While an image corresponding to image data stored in one of the planes A and B is being displayed on the screen, image data stored in another plane is updated. The planes A and B are then switched so that an image corresponding to the updated data stored in the other plane is displayed on the screen.
In the double buffering display unit having the multi-window function, it is managed whether image data for each window is stored in the plane A or the plane B. Images corresponding to image data for a plurality of windows stored in both the planes A and B are superimposed and displayed on the screen. In the transfer process, it is determined whether image data for each window is stored in the plane A or the plane B. If image data for a window is stored in the plane A, the image data for the window is transferred to (copied into) another area in the plane A. If image data for a window is stored in the plane B, the image data for the window is transferred to another area in the plane B. A process for transferring image data to another area is often referred to as a copy process. Images corresponding to the image data transferred to other areas in both the planes A and B are superimposed and displayed on the screen. As a result, the images for a plurality of windows are transferred on the screen.
In a control circuit for controlling the plane A and the plane B, the plane A and the plane B both of which are frame buffers are represented in different address spaces.
As has been described above, in a conventional double buffering display unit having the multi-window function, image data in the planes A and B is transferred window by window so that the images for the windows are transferred on the screen.
However, in a case where a plurality of windows are hierarchically formed so as to be overlapping each other on the screen as shown in FIG. 1A, it is difficult to transfer the images for a plurality of windows on the screen window by window. In FIG. 1A, windows W1, W2, W3 and W4 are opened on a screen, the window W1 including the windows W2 and W4 and the window W2 including the window W3. The window W1 is referred to as a parent window of the windows W2, W3 and W4. Each of the windows W2, W3 and W4 is referred to as a child window of the parent window W1. Even if it is determined that image data for the parent window W1 is stored in one of the planes A and B, images for the parent window W1 and the child windows W2, W3 and W4 which are included in the parent window W1 are not transferred to another area on the screen in a batch processing, because image data for the child windows W2, W3 and W4 may be stored in different planes.
Thus, conventionally, images for a plurality of windows overlapping each other are transferred on the screen in accordance with steps shown in FIGS. 1A-1G.
In a case where images in an original area of the parent window W1 including the child windows W2, W3 and W4 are transferred to an area shown by the dotted line in FIG. 1A, the original area of the parent window W1 is divided into a plurality of rectangular areas R1-R13, as shown in FIG. 1B, so that image data for each rectangular area is stored in either plane A or B. Images for the rectangular areas R1-R13 are successively transferred to the other areas rectangular area by rectangular area, as shown in FIGS. 1C-1G, so that all the images in the original area are transferred to the other area on the screen. In this transfer process, it is determined whether image data for each rectangular area is stored in the plane A or the plane B. The image data for each rectangular area is then, based on the determination result, read out from an original area in the plane A or B and written into a transferred area in the plane A or B, so that the images for the windows W1, W2, W3 and W4 displayed on the screen are transferred to the other area as shown in FIG. 1G.
In the above transfer process, the area of the parent window W1 must be divided into a plurality of rectangular areas R1-R13, and it must be further determined whether image data for each rectangular area is stored in the plane A or in the plane B. Thus, images for a plurality of windows which are overlapped on the screen cannot be rapidly transferred.